﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using com.clinica.business.BE.estadistica;
using com.clinica.business.BL.interfaces.estadistica;
using com.clinica.business.BL.interfaces.gesliq;
using com.clinica.business.BE.gesliq;
using com.clinica.business.BE.actdocpago;
using com.clinica.business.BE.actcliente;
using com.clinica.config;

namespace LiclEstadistica
{
    public class LiclCiaSegurosController
    {
        BeginConfig config = new BeginConfig();
        public LiclCiaSegurosController()
        { 
        
        }
        public List<CiaSegurosBE> Obtener_Reporte(CiaSegurosBE oRequest)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<CiaSegurosBE> lst = oParm.ObternerReporteSeguros(oRequest);
                factory.Close();
                return lst;
            }
        }

        public List<LiquidacionBE> Obtener_Reporte_Liquidacion(LiquidacionBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<LiquidacionBE> lst = oParm.ObternerReporteLiquidacion(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }
        public List<DocumentoPagoBE> Obtener_Reporte_DocPago_Tipodoc(DocumentoPagoBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<DocumentoPagoBE> lst = oParm.ObternerReporteDocumentoPago(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }
        public List<DocumentoPagoBE> Obtener_Reporte_DocPago_Cliente(DocumentoPagoBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<DocumentoPagoBE> lst = oParm.ObternerReporteDocumentoPagoXCliente(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }
        public List<DocumentoPagoBE> Obtener_Reporte_DocPago_Cia(DocumentoPagoBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<DocumentoPagoBE> lst = oParm.ObternerReporteDocumentoPagoXCia(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }



        public List<ParametrosBE> Obtener_Tabla(ParametrosBE oRequest)
        {
            ChannelFactory<IParametrosBL> factory = null;
            using (factory = new ChannelFactory<IParametrosBL>(config.Context + "Parametro"))
            {
                IParametrosBL oParm = factory.CreateChannel();
                List<ParametrosBE> lst = oParm.ObtenerParametros(oRequest);
                factory.Close();
                return lst;
            }
        }
        public List<ClienteBE> Obtener_Cliente(int tipo, string Nombre)
        {
            ChannelFactory<ICiaSegurosBL> factory = null;
            using (factory = new ChannelFactory<ICiaSegurosBL>(config.Context + "Estadistica"))
            {
                ICiaSegurosBL oParm = factory.CreateChannel();
                List<ClienteBE> lst = oParm.ObternerCliente(tipo, Nombre);
                factory.Close();
                return lst;
            }
        }
    }
}
